package com.carefree.bookmall.dao;


import com.carefree.bookmall.common.vo.BookQueryVo;
import com.carefree.bookmall.entity.BookType;

import java.util.List;

/**
 * 书籍类别
 *
 * @author Aurora
 */
public interface BookTypeMapper {
    /**
     * 查询图书类型
     *
     * @return
     */
    public List<BookType> selectBookTypes();

    /**
     * 按btid查询书籍
     *
     * @param typeId   类别id
     * @param pageNum  页码
     * @param pageSize 每页显示记录数
     * @return
     */
    public List<BookQueryVo> selectBooksByTypeId(int typeId, int pageNum, int pageSize);

    /**
     * 根据推荐类型id查询总数
     *
     * @param typeId 类别id
     * @return 指定类别的书籍总数
     */
    public int selectCountOfBooksByTypeId(int typeId);

    /**
     * 根据id值查询类别
     *
     * @param typeId 类别id
     * @return 书籍类别名称
     */
    public String selectBookTypeNameByTypeId(int typeId);


    /**
     * 添加类型
     *
     * @param typeName 书籍类别名称
     * @return 受影响行数
     */
    public int addBookType(BookType bookType);

    /**
     * 修改类目
     *
     * @param bookType
     * @return
     */
    public int updateBookType(BookType bookType);

    /**
     * 删除类别
     *
     * @param typeId 书籍类别id
     * @return 受影响行数
     */
    public int deleteBookType(int typeId);

    /**
     * 根据类别名称查询
     *
     * @param typeName 书籍类别名称
     * @return 记录总数
     */
    public int identifyByBookTypeName(String typeName);

    /**
     * 查询类目总数
     *
     * @return
     */
    public int selectBookTypeCount();

    /**
     * 分页查询类目
     *
     * @param pageNum  页码
     * @param pageSize 每页显示记录数
     * @return
     */
    List<BookType> selectBookTypesByPage(int pageNum, int pageSize);

    /**
     * 根据id查询
     *
     * @param typeId
     * @return
     */
    BookType selectBookTypeById(Integer typeId);

    /**
     * 根据书籍类别的访问路径查询类别名称
     *
     * @param typeUrl 籍类别的访问路径
     * @return 类别名称
     */
    BookType selectBookTypeNameByTypeUrl(String typeUrl);
}
